package com.wlc.springboot01.pojo;

import lombok.Data;
import lombok.NonNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.Email;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author 王立朝 wanglichao@champion-credit.com
 * @description 人类
 * @date 2021-07-29 13:33
 *
 * @ConfigurationProperties(value = "people") 作用：
 * 将配置文件中配置的每一个属性的值，映射到这个组件中；
 * 告诉SpringBoot 将本类中的所有的属性和配置文件中相关的配置进行绑定
 * 参数 prefix = "people" ： 将配置文件中的 people下的所有属性意义对应
 *
 * 只有这个组件是容器中的组件，才能使用容器提供的 @ConfigurationProperties(value="") 注解
 *
 */
@ConfigurationProperties(value = "people")
@Component
@Data
// 数据校验
@Validated
public class People {

     @Email(message = "名字不合法")
     private String name;
     private Integer age;

     private Date birth;
     private Map<String,Object> maps;

     private Dog dog;

     private List<Object> list;

     @Value("${address}")
     private String address;


}
